﻿using System.Collections.Generic;

namespace BLL_Library
{
    public abstract class SearchEngine
    {
        protected List<Recipe> m_recipesList;

        /// <summary>
        /// Sträng för sökparametern
        /// </summary>
        protected string m_searchParametersString;

        /// <summary>
        /// Sträng för sökparametern men annan datatyp
        /// </summary>
        protected RecipeType m_searchParametersRecipeType;

        /// <summary>
        /// Olika konstruktorer beroende på vilken datatyp som används som sökparameter
        /// </summary>
        protected SearchEngine(List<Recipe> a_recipesList, RecipeType a_searchParametersRecipeType)
        {
            m_recipesList = a_recipesList;
            m_searchParametersRecipeType = a_searchParametersRecipeType;
        }

        /// <summary>
        /// Olika konstruktorer beroende på vilken datatyp som används som sökparameter
        /// </summary>
        protected SearchEngine(List<Recipe> a_recipesList, string a_searchParameters)
        {
            m_recipesList = a_recipesList;
            m_searchParametersString = a_searchParameters;
        }

        /// <summary>
        /// Kollar om receptet uppfyller sökkriterierna
        /// </summary>
        /// <param name="member">receptet</param>
        /// <returns>om receptet finns eller inte</returns>
        public abstract bool IsSelected(Recipe a_recipes);
    }
}
